XML, the Extensible Markup Language, is a general-purpose specification for creating custom markup languages. XML is said to be extensible in that it has no predetermined format, but rather is a meta-language for describing other languages. Thus, XML enables users to design customized markup languages for various types of documents and to define user-specified elements. One of the benefits provided by XML is that it facilitates the sharing of structured data across different information systems, especially via the Internet.
XML is also used to encode documents and to serialize data. An important constraint, however, is that specifying and reading XML data in a document, even one in which only a small portion of a large schema is specified, requires that a full, nested data structure be specified for the document. As a result, often times the XML is overspecified, especially when default values can be applied. This is especially so in an application-server context when providing metadata to applications developed using the Java™ 2 Platform, Enterprise Edition (J2EE) platform for server programming in the Java™ programming language from Sun Microsystems of Santa Clara, Calif. The J2EE XML data, specified as metadata for J2EE documents—for example, application.xml, web.xml, and ejb-jar.xml—often require the specification of data elements in a deeply-nested structure.